<?php


require_once 'AbstractModel.php';

class ListeServiceBDD extends AbstractModel
{
	// Préparation des requêtes
	var $_truncate;
	var $_insert;
	var $_update_code_service;
	var $_update_libelle_service;
	var	$_update_code_famille;
	var	$_update_prix_unitaire_HT;
	var	$_update_taux_tva;
	var	$_update_commentaire;
	var	$_update_description;
	var $_select;
	var $_selectAll;
	var $_delete;
	
	public function __construct()
    {
        parent::__construct('LISTE_SERVICES');
	
		$this->_truncate = $this->_db->prepare('TRUNCATE LISTE_SERVICES');
		$this->_insert = $this->_db->prepare('INSERT INTO LISTE_SERVICES (code_service, libelle_service, code_famille, prix_unitaire_HT, taux_tva, commentaire, description ) VALUES ( ?, ?, ?, ?, ?, ?, ?);');
		$this->_update_code_service = $this->_db->prepare('UPDATE LISTE_SERVICES SET code_service=:value WHERE code_service=:code_service;');
		$this->_update_libelle_service = $this->_db->prepare('UPDATE LISTE_SERVICES SET libelle_service=:value WHERE code_service=:code_service;');
		$this->_update_code_famille = $this->_db->prepare('UPDATE LISTE_SERVICES SET code_famille=:value WHERE code_service=:code_service;');
		$this->_update_prix_unitaire_HT = $this->_db->prepare('UPDATE LISTE_SERVICES SET prix_unitaire_HT=:value WHERE code_service=:code_service;');
		$this->_update_taux_tva = $this->_db->prepare('UPDATE LISTE_SERVICES SET taux_tva=:value WHERE code_service=:code_service;');
		$this->_update_commentaire = $this->_db->prepare('UPDATE LISTE_SERVICES SET commentaire=:value WHERE code_service=:code_service;');
		$this->_update_description = $this->_db->prepare('UPDATE LISTE_SERVICES SET description=:value WHERE code_service=:code_service;');

		$this->_select = $this->_db->prepare('SELECT * FROM LISTE_SERVICES WHERE code_service=?;');
		$this->_select->setFetchMode(PDO::FETCH_ASSOC); // Facultatif		
		$this->_selectAll = $this->_db->prepare('SELECT * FROM LISTE_SERVICES');
		$this->_selectAll->setFetchMode(PDO::FETCH_ASSOC); // Facultatif
		
		$this->_delete = $this->_db->prepare('DELETE FROM LISTE_SERVICES WHERE code_service=?;');
    }
	
	public function addService($code_service, $libelle_service, $code_famille, $prix_unitaire_HT, $taux_tva, $commentaire, $description)
{
	// On sécurise les entrées
	//$id = strip_tags($id);
	$code_service = strip_tags($code_service);
	$libelle_service = strip_tags($libelle_service);
	$code_famille = strip_tags($code_famille);
	$prix_unitaire_HT = floatval(strip_tags($prix_unitaire_HT));
	$taux_tva = floatval(strip_tags($taux_tva));
	$commentaire = strip_tags($commentaire);
	$description = strip_tags($description);

	try{
			$this->_insert->execute(array($code_service, $libelle_service, $code_famille, $prix_unitaire_HT, $taux_tva, $commentaire, $description));
			echo "La création du service à été effectuée avec succés :)";
		}
		catch(Exception $e)
		{
			echo "Échec : " . $e->getMessage();
		}
	}
	
	public function updateServiceInfo($code_service, $attribute, $value)
	{
		// Sécurisation des données en entrée
		$attribute = strip_tags($attribute);
		$value = strip_tags($value);
		$code_service = strip_tags($code_service);
		try{
			if ( $attribute=='code_service' ){		
				$this->_update_code_service->bindParam(':code_service', $code_service, PDO::PARAM_STR);
				$this->_update_code_service->bindParam(':value', $value, PDO::PARAM_STR);
				$this->_update_code_service->execute();		
			}elseif ( $attribute=='libelle_service' ){		
				$this->_update_libelle_service->bindParam(':code_service', $code_service, PDO::PARAM_STR);
				$this->_update_libelle_service->bindParam(':value', $value, PDO::PARAM_STR);
				$this->_update_libelle_service->execute();		
			}elseif ( $attribute=='code_famille' ){		
				$this->_update_code_famille->bindParam(':code_service', $code_service, PDO::PARAM_STR);
				$this->_update_code_famille->bindParam(':value', $value, PDO::PARAM_STR);
				$this->_update_code_famille->execute();		
			}elseif ( $attribute=='prix_unitaire_HT' ){		
				$this->_update_prix_unitaire_HT->bindParam(':code_service', $code_service, PDO::PARAM_STR);
				$this->_update_prix_unitaire_HT->bindParam(':value', $value, PDO::PARAM_STR);
				$this->_update_prix_unitaire_HT->execute();		
			}elseif ( $attribute=='taux_tva' ){		
				$this->_update_taux_tva->bindParam(':code_service', $code_service, PDO::PARAM_STR);
				$this->_update_taux_tva->bindParam(':value', $value, PDO::PARAM_STR);
				$this->_update_taux_tva->execute();		
			}elseif ( $attribute=='commentaire' ){		
				$this->_update_commentaire->bindParam(':code_service', $code_service, PDO::PARAM_STR);
				$this->_update_commentaire->bindParam(':value', $value, PDO::PARAM_STR);
				$this->_update_commentaire->execute();		
			}elseif ( $attribute=='description' ){		
				$this->_update_description->bindParam(':code_service', $code_service, PDO::PARAM_STR);
				$this->_update_description->bindParam(':value', $value, PDO::PARAM_STR);
				$this->_update_description->execute();		
			}
			echo "La modification du service à été effectuée avec succés :)";
		}
		catch(Exception $e)
		{
			echo "Échec : " . $e->getMessage();
		}
	}
	
	
	public  function fetchService($code_service)
	{
		$this->_select->execute(array($code_service));
		return $this->_select->fetchAll();
	}
	
	public  function fetchAllServices()
	{
		$this->_selectAll->execute();
		return $listeService = $this->_selectAll->fetchAll();
	}
	
	public  function delete($code_service)
	{
		$this->_delete->execute(array($code_service));
	}
}
